package cn.iocoder.yudao.module.book.controller.app.classes.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotNull;

@Data
@Schema(description = "小程序 - 班级管理 Request VO")
@ToString(callSuper = true)
public class BanjiManageReqVO {

    @Schema(description = "班级ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "班级ID不能为空")
    private Integer classId;

    @Schema(description = "操作类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "操作类型不能为空")
    private Integer operateType; // 1-转让班级, 2-锁定班级, 3-解锁班级, 4-解散班级, 5-移除成员

    // 转让班级时需要的参数
    @Schema(description = "新班主任用户ID", example = "123")
    private Long newOwnerId;

    // 移除成员时需要的参数
    @Schema(description = "要移除的成员ID", example = "456")
    private Long memberId;

    // 锁定原因（可选）
    @Schema(description = "锁定原因", example = "违规操作")
    private String lockReason;

    // 班级新名称（转让时可选择修改）
    @Schema(description = "班级新名称", example = "新班级名称")
    private String newClassName;
}